//
//  SZBarrageDataPacket.h
//  Pods
//
//  Created by Zahi on 2017/9/7.
//
//

#import <Foundation/Foundation.h>


/**
 数据包类型

 - SZBarrageDataPacketTypeSend: 发送的数据包
 - SZBarrageDataPacketTypeReceived: 接受的数据包
 */
typedef NS_ENUM(NSUInteger, SZBarrageDataPacketType) {
    SZBarrageDataPacketTypeSend = 689,
    SZBarrageDataPacketTypeReceived = 690
};


/// 弹幕的数据
@interface SZBarrageDataPacket : NSObject

/// 数据包的长度
@property (readonly, assign) unsigned int length;

/// 消息的类型
@property (nonatomic, assign) SZBarrageDataPacketType type;

/// 加密字段 默认为0 未使用
@property (nonatomic, assign) unsigned char secureField;
/// 保留字段 默认为0 未使用
@property (nonatomic, assign) unsigned char reservedField;

/// 内容数据 结尾必须'\0'结尾
@property (nonatomic, strong) NSString *content;

/// 返回的二进制数据
- (NSData*)rawData;

/// 通过二进制构建数据包对象
- (instancetype)initWithRawData:(NSData *)rawData;

@end
